

package com.yungu.swift.system.sys.dao;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.system.sys.model.dto.SysAccountDriverDto;
import com.yungu.swift.system.finance.model.param.AdminAccountFlowPageParam;
import com.yungu.swift.system.finance.model.param.AdminAccountPageParam;
import com.yungu.swift.system.sys.model.vo.SysDriverAccountFlowVo;
import com.yungu.swift.system.sys.model.vo.SysDriverAccountVo;

import java.util.List;
import java.util.Map;

public interface SysAccountDriverMapper extends IMapper<SysAccountDriverDto> {
    /**
     * 司机账户查询
     *
     * @param pageParam
     * @return
     */
    PageList<SysDriverAccountVo> queryPageVo(AdminAccountPageParam pageParam, PageBounds pageBounds);

    /**
     * 司机账户查询（EXCEL导出）--注意与分页方法保持同名
     *
     * @param pageParam 参数集合
     * @return List
     * @author Zerrion
     * @date 2018/10/23
     */
    List<SysDriverAccountVo> queryPageVo(AdminAccountPageParam pageParam);

    /**
     * 账户统计 —— 查询司机数量及账号总额
     *
     * @param pageParam
     * @return
     */
    SysDriverAccountVo statistics(AdminAccountPageParam pageParam);

    /**
     * 查询司机账户流水
     *
     * @param flowPageParam
     * @return
     */
    PageList<SysDriverAccountFlowVo> flowQueryPage(AdminAccountFlowPageParam flowPageParam, PageBounds pageBounds);

    /**
     * 查询司机账户流水 —— 导出
     *
     * @param flowPageParam
     * @return
     */
    List<SysDriverAccountFlowVo> flowQueryPage(AdminAccountFlowPageParam flowPageParam);

    /**
     * 查询司机账号信息
     *
     * @param map
     * @return
     */
    SysDriverAccountVo findAccountDriverVo(Map<String, Object> map);

    /**
     * 批量保存
     *
     * @param list
     * @return
     */
    Integer saveBatch(List<SysAccountDriverDto> list);
}